// 导入 express 模块
const express = require('express');

let singers = [
    {
    name: "周杰伦1",
    sex: "男1",
    list: [
      {
        name: "跨时代1",
        saleNum: 1000000, // 专辑销量
        singerNum: 10, // 歌曲数量
        singers: ["东风破"],
      },
      {
        name: "跨时代2",
        saleNum: 14440000, // 专辑销量
        singerNum: 5, // 歌曲数量
        singers: ["东风破2"],
      },
      {
        name: "跨时代3",
        saleNum: 34560000, // 专辑销量
        singerNum: 15, // 歌曲数量
        singers: ["东风破3"],
      },
    ],
  },
  {
    name: "周杰伦2",
    sex: "男2",
    list: [
      {
        name: "跨时代1",
        saleNum: 100042320, // 专辑销量
        singerNum: 10, // 歌曲数量
        singers: ["东风破"],
      },
      {
        name: "跨时代2",
        saleNum: 124123000, // 专辑销量
        singerNum: 5, // 歌曲数量
        singers: ["东风破2"],
      },
      {
        name: "跨时代3",
        saleNum: 3550000, // 专辑销量
        singerNum: 15, // 歌曲数量
        singers: ["东风破3"],
      },
    ],
  },
  {
    name: "周杰伦3",
    sex: "男3",
    list: [
      {
        name: "跨时代1",
        saleNum: 2042320, // 专辑销量
        singerNum: 10, // 歌曲数量
        singers: ["东风破"],
      },
      {
        name: "跨时代2",
        saleNum: 423000, // 专辑销量
        singerNum: 5, // 歌曲数量
        singers: ["东风破2"],
      },
      {
        name: "跨时代3",
        saleNum: 6000, // 专辑销量
        singerNum: 15, // 歌曲数量
        singers: ["东风破3"],
      },
    ],
  },
  {
    name: "周杰伦4",
    sex: "男4",
    list: [
      {
        name: "跨时代1",
        saleNum: 5552320, // 专辑销量
        singerNum: 10, // 歌曲数量
        singers: ["东风破"],
      },
      {
        name: "跨时代2",
        saleNum: 453000, // 专辑销量
        singerNum: 5, // 歌曲数量
        singers: ["东风破2"],
      },
      {
        name: "跨时代3",
        saleNum: 23200, // 专辑销量
        singerNum: 15, // 歌曲数量
        singers: ["东风破3"],
      },
    ],
  },
  {
    name: "周杰伦5",
    sex: "男5",
    list: [
      {
        name: "跨时代1",
        saleNum: 5552320, // 专辑销量
        singerNum: 10, // 歌曲数量
        singers: ["东风破"],
      },
      {
        name: "跨时代2",
        saleNum: 453000, // 专辑销量
        singerNum: 5, // 歌曲数量
        singers: ["东风破2"],
      },
      {
        name: "跨时代3",
        saleNum: 23200, // 专辑销量
        singerNum: 15, // 歌曲数量
        singers: ["东风破3"],
      },
    ],
  },
  {
    name: "周杰伦6",
    sex: "男6",
    list: [
      {
        name: "跨时代1",
        saleNum: 5552320, // 专辑销量
        singerNum: 10, // 歌曲数量
        singers: ["东风破"],
      },
      {
        name: "跨时代2",
        saleNum: 453000, // 专辑销量
        singerNum: 5, // 歌曲数量
        singers: ["东风破2"],
      },
      {
        name: "跨时代3",
        saleNum: 23200, // 专辑销量
        singerNum: 15, // 歌曲数量
        singers: ["东风破3"],
      },
    ],
  },
];


// 创建 express 的服务器实例
const app = express();
const cors = require("cors");
app.use(cors());

// 全局件
app.use(express.urlencoded({ extended: false }));
app.use(express.json());

// 分页接口：前端的页码和数据起始索引之间的关系。slice
// 第一页：slice对应的索引0 2 (页码 - 1)*2
// 第二页：slice对应的索引2 4 (页码 - 1)*2
// 第三页：slice对应的索引4 6 (页码 - 1)*2

/* app.get("/list", (req,res) => {
    const page = req.query.page; // 是一个字符串 总的页数
    const size = req.query.size || 2; // 或运算 如果size前端不反馈，那默认每页显示2条
    if (!page) {
        res.send("请正确填写参数");
    }
    // 根据 page 页码，找对应的起始索引
    const startIdx = (page - 1) * size; // 起始索引
    const endIdx = satrtIdx + size; // 结束索引
    // 切割数组
    const result = singers.slice(startIdx,endIdx);
    // 前端发送请求，服务器返回前端数据方法一  JSON数据
    // res.send(JSON.stringify({
    //     msg:"ok",
    //     status:1,   // 状态码
    //     singer:result,
    // })
    // );

    // 方法二
    res.send({
            msg:"ok",
            status:1,   // 状态码
            singer:result,
        });
});
 */

app.get("/list", (req, res) => {
    const page = req.query.page;
    const size = req.query.size || 2; // 或运算，如果size前端没有传递，默认是2条。
    if (!page) {
      res.send("请正确填写参数");
    }
    // 根据page页码，找对应的起始索引值
    const startIdx = (page - 1) * size;
    const endIdx = startIdx + size * 1; // 前台传参变成字符串了 隐式转换
    const result = singers.slice(startIdx, endIdx);
    console.log(startIdx, endIdx);
    console.log(result);
    // res.send(
    //   JSON.stringify({
    //     msg: "ok",
    //     status: 1,
    //     sings: result,
    //   })
    // );
  
    res.json({
      msg: "ok",
      status: 1,
      sings: result,
      nums:Math.ceil(singers.length / size),    // 计算总分页数量 向上取整
    });
  });


// 调用 app.listen 方法,指定端口号并启动web服务器
app.listen(8080, function () {
      console.log('服务器已启动, 127.0.0.1:8080');
});